From a13db0cf75fd95ddba23d15075536342185ee9ed Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 30 Aug 2005 17:09:43 +0000 Subject: [PATCH] Add some more EXPORT_SYMBOLs for Xen-defined stuff. Based on a patch from Ross Mcilroy. --- linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c | 17 ++++++++++------- .../drivers/xen/xenbus/xenbus_xs.c | 7 +++++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c b/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c index dd8131c943..436d4beb3f 100644 --- a/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c +++ b/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c @@ -44,13 +44,6 @@ #include #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) -EXPORT_SYMBOL(force_evtchn_callback); -EXPORT_SYMBOL(evtchn_do_upcall); -EXPORT_SYMBOL(bind_evtchn_to_irq); -EXPORT_SYMBOL(unbind_evtchn_from_irq); -#endif - /* * This lock protects updates to the following mapping and reference-count * arrays. The lock does not need to be acquired to read the mapping tables. @@ -133,6 +126,7 @@ void force_evtchn_callback(void) { (void)HYPERVISOR_xen_version(0); } +EXPORT_SYMBOL(force_evtchn_callback); /* NB. Interrupts are disabled on entry. */ asmlinkage void evtchn_do_upcall(struct pt_regs *regs) @@ -165,6 +159,7 @@ asmlinkage void evtchn_do_upcall(struct pt_regs *regs) } } } +EXPORT_SYMBOL(evtchn_do_upcall); static int find_unbound_irq(void) { @@ -211,6 +206,7 @@ int bind_virq_to_irq(int virq) return irq; } +EXPORT_SYMBOL(bind_virq_to_irq); void unbind_virq_from_irq(int virq) { @@ -244,6 +240,7 @@ void unbind_virq_from_irq(int virq) spin_unlock(&irq_mapping_update_lock); } +EXPORT_SYMBOL(unbind_virq_from_irq); int bind_ipi_to_irq(int ipi) { @@ -279,6 +276,7 @@ int bind_ipi_to_irq(int ipi) return irq; } +EXPORT_SYMBOL(bind_ipi_to_irq); void unbind_ipi_from_irq(int ipi) { @@ -306,6 +304,7 @@ void unbind_ipi_from_irq(int ipi) spin_unlock(&irq_mapping_update_lock); } +EXPORT_SYMBOL(unbind_ipi_from_irq); int bind_evtchn_to_irq(unsigned int evtchn) { @@ -326,6 +325,7 @@ int bind_evtchn_to_irq(unsigned int evtchn) return irq; } +EXPORT_SYMBOL(bind_evtchn_to_irq); void unbind_evtchn_from_irq(unsigned int evtchn) { @@ -341,6 +341,7 @@ void unbind_evtchn_from_irq(unsigned int evtchn) spin_unlock(&irq_mapping_update_lock); } +EXPORT_SYMBOL(unbind_evtchn_from_irq); int bind_evtchn_to_irqhandler( unsigned int evtchn, @@ -359,6 +360,7 @@ int bind_evtchn_to_irqhandler( return retval; } +EXPORT_SYMBOL(bind_evtchn_to_irqhandler); void unbind_evtchn_from_irqhandler(unsigned int evtchn, void *dev_id) { @@ -366,6 +368,7 @@ void unbind_evtchn_from_irqhandler(unsigned int evtchn, void *dev_id) free_irq(irq, dev_id); unbind_evtchn_from_irq(evtchn); } +EXPORT_SYMBOL(unbind_evtchn_from_irqhandler); #ifdef CONFIG_SMP static void do_nothing_function(void *ign) diff --git a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c index ca4daf15ba..a969bc43e0 100644 --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c @@ -45,7 +45,9 @@ static char printf_buffer[4096]; static LIST_HEAD(watches); + DECLARE_MUTEX(xenbus_lock); +EXPORT_SYMBOL(xenbus_lock); static int get_error(const char *errorstring) { @@ -224,6 +226,7 @@ char **xenbus_directory(const char *dir, const char *node, unsigned int *num) ret[(*num)++] = p; return ret; } +EXPORT_SYMBOL(xenbus_directory); /* Check if a path exists. Return 1 if it does. */ int xenbus_exists(const char *dir, const char *node) @@ -237,6 +240,7 @@ int xenbus_exists(const char *dir, const char *node) kfree(d); return 1; } +EXPORT_SYMBOL(xenbus_exists); /* Get the value of a single file. * Returns a kmalloced value: call free() on it after use. @@ -277,18 +281,21 @@ int xenbus_write(const char *dir, const char *node, return xs_error(xs_talkv(XS_WRITE, iovec, ARRAY_SIZE(iovec), NULL)); } +EXPORT_SYMBOL(xenbus_write); /* Create a new directory. */ int xenbus_mkdir(const char *dir, const char *node) { return xs_error(xs_single(XS_MKDIR, join(dir, node), NULL)); } +EXPORT_SYMBOL(xenbus_mkdir); /* Destroy a file or directory (directories must be empty). */ int xenbus_rm(const char *dir, const char *node) { return xs_error(xs_single(XS_RM, join(dir, node), NULL)); } +EXPORT_SYMBOL(xenbus_rm); /* Start a transaction: changes by others will not be seen during this * transaction, and changes will not be visible to others until end. -- 2.30.2